草庐IT

Lua 垃圾回收

全部标签

javascript - 垃圾收集和 JavaScript "delete": Is this overkill/obfuscation, 还是一个好的做法?

我刚刚阅读了这个问题和接受的答案:WhatisJavaScriptgarbagecollection?在答案中,Noldorin引用了Apple的一些指南。这是我关心的部分:Usedeletestatements.Wheneveryoucreateanobjectusinganewstatement,pairitwithadeletestatement.Thisensuresthatallofthememoryassociatedwiththeobject,includingitspropertyname,isavailableforgarbagecollection.我总是花时间跟上

java - 垃圾收集器是否保证在内存不足错误之前运行?

如果堆已满,JVM会抛出一个OutOfMemoryError.但是,是否保证在抛出此类异常之前总是进行(完整)垃圾收集?这意味着当抛出异常时,只有强引用对象(或GCRoot可访问)内存已满。编辑:假设SunJVM-HotSpot正在讨论中。 最佳答案 JavaMachineSpecificationstatesinsection6.3(强调我的):OutOfMemoryError:TheJavavirtualmachineimplementationhasrunoutofeithervirtualorphysicalmemory,a

java - 垃圾收集器是否保证在内存不足错误之前运行?

如果堆已满,JVM会抛出一个OutOfMemoryError.但是,是否保证在抛出此类异常之前总是进行(完整)垃圾收集?这意味着当抛出异常时,只有强引用对象(或GCRoot可访问)内存已满。编辑:假设SunJVM-HotSpot正在讨论中。 最佳答案 JavaMachineSpecificationstatesinsection6.3(强调我的):OutOfMemoryError:TheJavavirtualmachineimplementationhasrunoutofeithervirtualorphysicalmemory,a

c++ - 如何将对象列表从 C++ 传递到 Lua?

我是Bitfighter的首席开发人员,并且正在使用Lua添加用户脚native器人。我正在使用C++和Lua使用Lunar将它们粘合在一起。我正在尝试做一些我认为应该非常简单的事情:我在Lua中有一个C++对象(下面的代码中的机器人),我在它上面调用了一个方法(findItems),它导致C++搜索机器人周围的区域并返回它找到的对象列表(TestItems和其他未在此处显示的对象)。我的问题只是如何在C++中组装并返回找到的项目列表,然后在Lua中对其进行迭代?基本上,我想填写>>>block,并在Lua代码本身中进行我可能需要的任何更正,包括在下面。我试图让代码保持简单但完整。希望

c++ - 如何将对象列表从 C++ 传递到 Lua?

我是Bitfighter的首席开发人员,并且正在使用Lua添加用户脚native器人。我正在使用C++和Lua使用Lunar将它们粘合在一起。我正在尝试做一些我认为应该非常简单的事情:我在Lua中有一个C++对象(下面的代码中的机器人),我在它上面调用了一个方法(findItems),它导致C++搜索机器人周围的区域并返回它找到的对象列表(TestItems和其他未在此处显示的对象)。我的问题只是如何在C++中组装并返回找到的项目列表,然后在Lua中对其进行迭代?基本上,我想填写>>>block,并在Lua代码本身中进行我可能需要的任何更正,包括在下面。我试图让代码保持简单但完整。希望

编写C语言程序,模拟实现首次/最佳/最坏适应算法的内存块分配和回收,要求每次分配和回收后显示出空闲分区和已分配分区的情况。假设初始状态下,可用的内存空间为640KB。(江西师范大学软件学院 操作系统)

【操作系统】分区分配算法(首次适应算法、最佳适应算法、最坏适应算法)(C语言实现)为了实现动态分区分配,通常将系统中的空闲分区链接成一个链。所谓顺序查找是指依次搜索空闲分区链上的空闲分区,去寻找一个大小能满足要求的分区。--------计算机操作系统(第四版)可变分区也称动态分区,在指作业装入内存时,从可用的内存中划出一块连续的区域分配给他,且分区大小正好等于改作业的大小。可变分区分配策略:1.首次适应算法:地址递增,从链首开始2.最佳适应算法:性能最差,容量递减,浪费最小3.最坏适应算法:分区大小递减,整合碎片,提高利用率首次适应算法的话可以不断的去遍历寻找空间是否为空余的。最佳适应算法的话

c++ - 在 C/C++ 中引用 Lua 函数

我有一个函数嵌套在一组表中相对较深。C/C++中有没有办法获得对该函数的“引用”并在我需要使用它时将其(和args)推送到堆栈上? 最佳答案 这就是referencesystem是为了。函数调用r=luaL_ref(L,LUA_REGISTRYINDEX)将值存储在注册表中的栈顶,并返回一个整数,可以存储在C端,用于检索该值函数调用lua_rawgeti(L,LUA_REGISTRYINDEX,r).见PiLchapter,以及luaL_ref()的文档,lua_rawgeti(),和luaL_unref()完整的故事。

c++ - 在 C/C++ 中引用 Lua 函数

我有一个函数嵌套在一组表中相对较深。C/C++中有没有办法获得对该函数的“引用”并在我需要使用它时将其(和args)推送到堆栈上? 最佳答案 这就是referencesystem是为了。函数调用r=luaL_ref(L,LUA_REGISTRYINDEX)将值存储在注册表中的栈顶,并返回一个整数,可以存储在C端,用于检索该值函数调用lua_rawgeti(L,LUA_REGISTRYINDEX,r).见PiLchapter,以及luaL_ref()的文档,lua_rawgeti(),和luaL_unref()完整的故事。

c++ - 为嵌入式 Lua 重定向/重新定义 print()

我在我的C++应用程序中嵌入了Lua。我想重定向打印语句(或者可能只是重新定义打印函数?),以便我可以在其他地方显示评估的表达式。最好的方法是什么:重定向或重新定义print()函数?非常感谢任何显示如何执行此操作的片段/指向片段的指针。 最佳答案 您可以在C中重新定义打印语句:staticintl_my_print(lua_State*L){intnargs=lua_gettop(L);for(inti=1;i然后在全局表中注册:staticconststructluaL_Regprintlib[]={{"print",l_my_

c++ - 为嵌入式 Lua 重定向/重新定义 print()

我在我的C++应用程序中嵌入了Lua。我想重定向打印语句(或者可能只是重新定义打印函数?),以便我可以在其他地方显示评估的表达式。最好的方法是什么:重定向或重新定义print()函数?非常感谢任何显示如何执行此操作的片段/指向片段的指针。 最佳答案 您可以在C中重新定义打印语句:staticintl_my_print(lua_State*L){intnargs=lua_gettop(L);for(inti=1;i然后在全局表中注册:staticconststructluaL_Regprintlib[]={{"print",l_my_